package cn.ahaoweb.drule.core;

import org.drools.core.impl.StatefulKnowledgeSessionImpl;
import org.kie.api.runtime.KieSession;

/**
 * @Name: KieSessionWrapper
 * @Description:
 * @Author: wangzhonghao
 * @Date: 2025/2/14 18:16
 */
public class KieSessionWrapper {

    private KieSession kieSession;

    public KieSessionWrapper(KieSession kieSession) {
        this.kieSession = kieSession;
    }

    public KieSession getKieSession() {
        return kieSession;
    }

    public void setKieSession(KieSession kieSession) {
        this.kieSession = kieSession;
    }

    public void destroy(){
        if (kieSession != null){
            if (kieSession instanceof StatefulKnowledgeSessionImpl){
                StatefulKnowledgeSessionImpl k = (StatefulKnowledgeSessionImpl) kieSession;
                if (k.isAlive()){
                    k.destroy();
                }
            } else {
                kieSession.destroy();
            }
        }
    }
}
